package model
{
	import mx.collections.ArrayCollection;
	
	[Bindable]
	[RemoteClass(alias='model.Paciente')]
	public class Paciente
	{
		private var _altura:Number;
		private var _idade:int;
		private var _nome:String;
		private var _peso:Number;
		private var _quadril:Number;
		private var _sexo:String;
		private var _classificacoes: ArrayCollection = new ArrayCollection();
		
		
		public function Paciente(nome:String, idade:int, peso:Number, quadril:Number, sexo:String)
		{
			this._nome = nome;
			this._idade = idade;
			this._peso = peso;
			this._quadril = quadril;
			this._sexo = sexo;
		}
		
		
		public function getMememento(): MementoPaciente {
			return new MementoPaciente(null, null, null, null, null);
		}
		
		public function restaurar(memento:MementoPaciente):void {
			this._nome = memento.nome;
			this._idade = memento.idade;
			this._peso = memento.peso;
			this._quadril = memento.quadril;
			this._sexo = memento.sexo;
		}
		

		public function get altura():Number
		{
			return _altura;
		}
		
		public function set altura(value:Number):void
		{
			_altura = value;
		}
		
		public function get idade():int
		{
			return _idade;
		}
		
		public function set idade(value:int):void
		{
			_idade = value;
		}
		
		public function get nome():String
		{
			return _nome;
		}
		
		public function set nome(value:String):void
		{
			_nome = value;
		}
		
		public function get peso():Number
		{
			return _peso;
		}
		
		public function set peso(value:Number):void
		{
			_peso = value;
		}
		
		public function get quadril():Number
		{
			return _quadril;
		}
		
		public function set quadril(value:Number):void
		{
			_quadril = value;
		}
		
		public function get sexo():String
		{
			return _sexo;
		}
		
		public function set sexo(value:String):void
		{
			_sexo = value;
		}
		
		public function addClassificacao(classi:Classificacao):void{
			for( var i:int = 0; i < _classificacoes.length; i++ ) {
				if (((_classificacoes.getItemAt(i)) as Classificacao).condicao == classi.condicao) {
					this._classificacoes.removeItemAt(i);
				}
			}
			this._classificacoes.addItem(classi);
		}
		
		public function toString():String {
			return "Paciente [nome=" + _nome + ", idade=" + idade
				+ ", peso=" + _peso + ", quadril=" + _quadril + ", sexo=" + _sexo
				+ ", classificacoes=" + _classificacoes.toArray().toString();
		}

		
		
	}
}